{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Navigation MDP [1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warning: OpenAI gym not installed.\n"
     ]
    }
   ],
   "source": [
    "# Other Imports.\n",
    "from simple_rl.tasks import NavigationMDP\n",
    "from simple_rl.agents import QLearningAgent\n",
    "from simple_rl.planning import ValueIteration\n",
    "from simple_rl.tasks.grid_world.GridWorldStateClass import GridWorldState\n",
    "\n",
    "# Python Imports.\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "%matplotlib inline\n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x504 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "nvmdp = NavigationMDP(width=30, height=30, \n",
    "                      living_cell_types=['white', 'yellow', 'red', 'lime', 'magenta'],\n",
    "                      living_cell_rewards=[0, 0, -10, -10, -10],\n",
    "                      living_cell_distribution=\"probability\",\n",
    "                      living_cell_type_probs=[0.68, 0.17, 0.05, 0.05, 0.05],\n",
    "                      goal_cell_locs=[(21,21)],\n",
    "                      goal_cell_rewards=[1.],\n",
    "                      goal_cell_types=[\"blue\"],\n",
    "                      slip_prob=0.00, step_cost=0.0, gamma=.99)\n",
    "# Use \"init_states\" to request specific init states while sampling trajectories\n",
    "# if \"n_trajectory\" is greater than # of init_states, remaining init states will be sampled randomly\n",
    "state_trajectories, action_trajectories = nvmdp.sample_data(n_trajectory=8, \n",
    "                                                            init_states=[GridWorldState(2,2)], \n",
    "                                                            init_repetition=False)\n",
    "nvmdp.visualize_grid(trajectories=state_trajectories, show_colorbar=True, show_rewards_colorbar=True, goal_marker=\"*c\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Features used for short horizon"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sample State Trajectory \n",
      "Features: Cell Indicator ['white', 'yellow', 'red', 'lime', 'magenta', 'blue'] + Distsances to ['white', 'yellow', 'red', 'lime', 'magenta', 'blue'] + Distance to ['blue']\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[[1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 10.0, 38.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 3.0, 9.0, 37.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 3.0, 2.0, 8.0, 36.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 1.0, 7.0, 35.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 2.0, 6.0, 34.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 5.0, 33.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0, 2.0, 4.0, 32.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0, 3.0, 3.0, 31.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 3.0, 30.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 3.0, 5.0, 2.0, 29.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 4.0, 6.0, 1.0, 28.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 4.0, 5.0, 1.0, 27.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 3.0, 5.0, 1.0, 26.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 1.0, 25.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 3.0, 5.0, 1.0, 24.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 3.0, 6.0, 2.0, 23.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 7.0, 2.0, 22.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 3.0, 6.0, 1.0, 21.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 5.0, 1.0, 20.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 4.0, 2.0, 19.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 3.0, 1.0, 18.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 3.0, 2.0, 2.0, 17.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 3.0, 1.0, 3.0, 16.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 4.0, 2.0, 4.0, 15.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 3.0, 2.0, 5.0, 14.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 2.0, 6.0, 13.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 3.0, 7.0, 12.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 3.0, 7.0, 11.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 3.0, 2.0, 6.0, 10.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 4.0, 3.0, 5.0, 9.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 4.0, 3.0, 4.0, 8.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 3.0, 2.0, 3.0, 7.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 3.0, 3.0, 2.0, 6.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 1.0, 5.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0, 4.0, 2.0, 4.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.0, 2.0, 3.0, 1.0, 3.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0, 2.0, 1.0, 2.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 3.0, 2.0, 1.0],\n",
       " [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 3.0, 4.0, 3.0, 0.0]]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(\"Sample State Trajectory \\nFeatures: Cell Indicator {} + Distsances to {} + Distance to {}\\n\".format(nvmdp.cell_types, nvmdp.cell_types, nvmdp.goal_cell_types))\n",
    "[nvmdp.feature_at_state(s,\n",
    "                        feature_type=\"indicator\",\n",
    "                        incl_cell_distances=True,\n",
    "                        incl_goal_indicator=False,\n",
    "                        incl_goal_distances=True,\n",
    "                        normalize_distance=False, dtype=np.float).tolist() for s in state_trajectories[0]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Features used for long horizon"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sample State Trajectory \n",
      "Features: Cell Indicator ['white', 'yellow', 'red', 'lime', 'magenta', 'blue'] + Distance to ['blue']\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[[1.0, 0.0, 0.0, 0.0, 0.0, 38.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 37.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 36.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 35.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 34.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 33.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 32.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 31.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 30.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 29.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 28.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 27.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 26.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 25.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 24.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 23.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 22.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 21.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 20.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 19.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 18.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 17.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 16.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 15.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 14.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 13.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 12.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 11.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 10.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 9.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 8.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 7.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 6.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 5.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 4.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 3.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 2.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 1.0],\n",
       " [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(\"Sample State Trajectory \\nFeatures: Cell Indicator {} + Distance to {}\\n\".format(nvmdp.cell_types, nvmdp.goal_cell_types))\n",
    "[nvmdp.feature_at_state(s,\n",
    "                        feature_type=\"indicator\",\n",
    "                        incl_cell_distances=False,\n",
    "                        incl_goal_indicator=False,\n",
    "                        incl_goal_distances=True,\n",
    "                        normalize_distance=False, dtype=np.float).tolist() for s in state_trajectories[0]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Multiple Goals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x504 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sample State Trajectory\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[[1.0, 0.0, 0.0, 0.0, 0.0, 38.0, 18.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 37.0, 17.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 36.0, 16.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 35.0, 15.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 34.0, 14.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 33.0, 13.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 32.0, 12.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 31.0, 11.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 30.0, 10.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 29.0, 9.0],\n",
       " [0.0, 1.0, 0.0, 0.0, 0.0, 28.0, 8.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 27.0, 7.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 26.0, 6.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 25.0, 5.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 24.0, 4.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 23.0, 3.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 22.0, 2.0],\n",
       " [1.0, 0.0, 0.0, 0.0, 0.0, 21.0, 1.0],\n",
       " [0.0, 0.0, 0.0, 0.0, 0.0, 20.0, 0.0]]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.random.seed(0)\n",
    "nvmdp = NavigationMDP(width=30, height=30, \n",
    "                      living_cell_types=['white', 'yellow', 'red', 'lime', 'magenta'],\n",
    "                      living_cell_rewards=[0, 0, -10, -10, -10],\n",
    "                      living_cell_distribution=\"probability\",\n",
    "                      living_cell_type_probs=[0.68, 0.17, 0.05, 0.05, 0.05],\n",
    "                      goal_cell_locs=[(21,21), (11,11)],\n",
    "                      goal_cell_rewards=[1., 1.5],\n",
    "                      goal_cell_types=[\"orange\",\"blue\"],\n",
    "                      slip_prob=0.00, step_cost=0.0, gamma=.95)\n",
    "state_trajectories, action_trajectories = nvmdp.sample_data(n_trajectory=8, \n",
    "                                                            init_states=[GridWorldState(2,2)], \n",
    "                                                            init_repetition=False)\n",
    "nvmdp.visualize_grid(trajectories=state_trajectories, show_colorbar=True, show_rewards_colorbar=True, goal_marker=\"*c\")\n",
    "## Features: Cell Type Ind + Cell Type Dist + Goal Dist\n",
    "print(\"Sample State Trajectory\")\n",
    "[nvmdp.feature_at_state(s,\n",
    "                        feature_type=\"indicator\",\n",
    "                        incl_cell_distances=False,\n",
    "                        incl_goal_indicator=False,\n",
    "                        incl_goal_distances=True,\n",
    "                        normalize_distance=False, dtype=np.float).tolist() for s in state_trajectories[0]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Custom Grid"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nvmdp = NavigationMDP(width=7, height=7,\n",
    "                      living_cell_types=['white', 'yellow', 'red'],\n",
    "                      living_cell_rewards=[0, 0, -10],\n",
    "                      living_cell_distribution=\"manual\",\n",
    "                      living_cell_locs=[np.inf, np.inf, [(2,i) for i in range(1,7)]],\n",
    "                      goal_cell_locs=[(7,1),(1,1)],\n",
    "                      goal_cell_types=[\"blue\", \"orange\"],\n",
    "                      goal_cell_rewards=[1.,10.],\n",
    "                      traj_init_cell_types=[0,1],\n",
    "                      slip_prob=0.00, step_cost=0.0, gamma=.50)\n",
    "state_trajectories, action_trajectories = nvmdp.sample_data(n_trajectory=41, init_states=[GridWorldState(1,1)], init_repetition=False)\n",
    "nvmdp.visualize_grid(trajectories=state_trajectories, show_colorbar=True, show_rewards_colorbar=True, goal_marker=\"*c\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Updating Goals dynamically"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nvmdp._reset_goals([(7,1),(1,1)],[10.,1.],[\"blue\", \"orange\"])\n",
    "state_trajectories, action_trajectories = nvmdp.sample_data(n_trajectory=41, init_states=[GridWorldState(1,1)], init_repetition=False)\n",
    "nvmdp.visualize_grid(trajectories=state_trajectories, show_colorbar=True, show_rewards_colorbar=True, goal_marker=\"*c\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nvmdp._reset_goals([(7,1),(1,1),(7,7)],[10.,1.,10.],[\"blue\", \"orange\",\"purple\"])\n",
    "state_trajectories, action_trajectories = nvmdp.sample_data(n_trajectory=41, init_states=[GridWorldState(1,1)], init_repetition=False)\n",
    "nvmdp.visualize_grid(trajectories=state_trajectories, show_colorbar=True, show_rewards_colorbar=True, goal_marker=\"*c\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1008x576 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nvmdp._reset_goals([(7,1),(1,1),(7,7),(4,4)],[10.,1.,10.,5.],list(range(4))) \n",
    "state_trajectories, action_trajectories = nvmdp.sample_data(n_trajectory=41, init_states=[GridWorldState(1,1)], init_repetition=False)\n",
    "plt.figure(figsize=(14,8))\n",
    "nvmdp.visualize_grid(trajectories=state_trajectories, show_colorbar=True, show_rewards_colorbar=True, goal_marker=\"*c\", new_fig=False, subplot_str=\"121\")\n",
    "nvmdp.visualize_grid(nvmdp.get_value_grid(), trajectories=state_trajectories, show_colorbar=True, show_rewards_colorbar=False, goal_marker=\"*c\", new_fig=False, subplot_str=\"122\", \n",
    "                     state_space_cmap=False, title=\"Value\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Updating Rewards dynamically"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([0, 0, -10], [10.0, 1.0, 10.0, 5.0])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nvmdp.living_cell_rewards, nvmdp.goal_cell_rewards"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1008x576 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nvmdp._reset_rewards([0, 0, -0.01], [10.0, 1.0, 10.0, 5.0])\n",
    "state_trajectories, action_trajectories = nvmdp.sample_data(n_trajectory=41, init_states=[GridWorldState(1,1)], init_repetition=False)\n",
    "plt.figure(figsize=(14,8))\n",
    "nvmdp.visualize_grid(trajectories=state_trajectories, show_colorbar=True, show_rewards_colorbar=True, goal_marker=\"*c\", new_fig=False, subplot_str=\"121\")\n",
    "nvmdp.visualize_grid(nvmdp.get_value_grid(), trajectories=state_trajectories, show_colorbar=True, show_rewards_colorbar=False, goal_marker=\"*c\", new_fig=False, subplot_str=\"122\", \n",
    "                     state_space_cmap=False, title=\"Value\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reference\n",
    "\n",
    "[1] MacGlashan, James, and Michael L. Littman. \"Between Imitation and Intention Learning.\" IJCAI. 2015."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "irl_python3",
   "language": "python",
   "name": "irl_python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
